/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bookingtickets;

import java.util.Date;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author alexxxey
 */
@Remote
public interface BookingTicketsSessionRemote
{
    /**
     * Получение списка всех маршрутов
     * @return Список объектов Trip
     */
    public List getAllTrips();
    
    /**
     * Поиск маршрута по номеру
     * @param tripId Номер маршрута
     * @return Объект с информацией о маршруте
     */
    public Trip findTripById(int tripId);    
    
    /**
     * Поиск маршрутов по месту назначения
     * @param destination Место назначения
     * @return Список объектов Trip
     */
    public List findTripsForDestinations(String destinations);
    
    /**
     * Поиск маршрутов по дате отправления
     * @param date Дата отправления
     * @return Список объектов Trip
     */
    public List findTripsForDate(Date date);
    
    /**
     * Резервирование билетов
     * @param tickets Список резервируемых билетов
     */
    public void reserveTickets(int tripId, int place, 
            String firstName, String lastName, int pasport);    
    
    /**
     * Список зарезервированных билетов по номеру паспорта 
     * @param pasport Номер паспорта
     * @return Список зарезервированнх на этот номер билетов
     */
    public List reservedTickets(int pasport);
    
    /**
     * Отмена резервирования
     * @param place Номер места
     * @param place Номер маршрута
     */
    public void cancelReserve(int place, int tripId);
    
    
    /**
     * Получение списка свободных мест на маршрут
     * @param tripId Номер маршрута
     * @return Списко свободных мест
     */
    public List getFreePlacesList(int tripId);
    
    /**
     * Получение списка пунктов назначений для конкретного маршрута
     * @param tripId Номер маршрута
     * @return Списко названий мест назначения
     */
    public List getDestinationsList(int tripId);
}
